package day19;
//jdk8 Lambda表达式
//要求: 只针对接口可以使用, 而且接口里只能有一个抽象方法
//好处: 优化了匿名内部类的使用 -- 函数式编程
public class Test_JDK8 {
    public static void main(String[] args) {
        //TODO 1, 使用匿名内部类测试
        A a = new A(){//匿名对象+匿名内部类
            @Override
            public void save() {//重写抽象方法
                System.out.println("save..");
            }
        };
        a.save();//方法调用
        //TODO 2, 使用Lambda表达式优化匿名内部类
        //语法: ( 参数列表 ) -> { 方法体  }
        A a2 = ( ) -> { System.out.println("hello"); } ;
        a2.save();
        //TODO B--B接口里的get(int id)是需要参数的
        B b = ( int m ) -> { System.out.println("get::"+m); } ;
        b.get(1000);//把1000交给m
        //TODO C--C接口的int delete(String id)需要参数有返回值
        //方法的返回值通过return关键字
        C c = ( String n ) -> { return 100; } ;
        //把"jack"交给n,x保存返回来的100
        int x = c.delete("jack");
        System.out.println(x);
    }
}
//TODO 提供接口
interface C{
    int delete(String id);
}
interface B{
    void get(int id);
}
interface A{
    void save();
}



